#!/bin/bash

# tests目录下的简单编译脚本
# 成功返回0, 失败返回非0
# 使用方法: ./auto_test.sh [可执行文件名]

# 设置默认的可执行文件名 mytest 替换成项目tests目录生成的可执行文件
DEFAULT_TARGET="mytest"
TARGET_NAME=$DEFAULT_TARGET

echo "=== 开始编译测试代码 ==="
echo "目标可执行文件: $TARGET_NAME"

# 进入脚本所在目录
cd "$(dirname "$0")"

# 清理之前的构建
if [ -d "build" ]; then
    echo "清理之前的构建文件..."
    rm -rf build
fi

# 创建并进入构建目录
mkdir build
cd build

# 运行CMake配置
echo "执行CMake配置..."
cmake ..

# 检查CMake是否成功
if [ $? -ne 0 ]; then
    echo "错误: CMake配置失败!"
    exit 1
fi

# 编译测试代码
echo "编译测试代码..."
make -j4

# 检查make是否成功
if [ $? -ne 0 ]; then
    echo "错误: 编译失败!"
    exit 2
fi

# 检查测试可执行文件是否生成
if [ ! -f "$TARGET_NAME" ]; then
    echo "错误: 测试可执行文件 $TARGET_NAME 未生成!"
    exit 3
fi

echo "=== 测试代码编译成功 ==="
echo "可执行文件: build/$TARGET_NAME"
exit 0